package dao

import (
	"github.com/gin-gonic/gin"
	"gorm.io/gorm"
	"time"
)

// Menu 菜单数据表
type Menu struct {
	Id        int64     `json:"id" gorm:"column:id;comment:自增id"`
	PageKey   string    `json:"page_key" gorm:"column:page_key;comment:所属页面key;index;"`
	MenuName  string    `json:"menu_name" gorm:"column:menu_name;comment:菜单名称"`
	MenuPath  string    `json:"menu_path" gorm:"column:menu_path;comment:材料路由"`
	Icon      string    `json:"icon" gorm:"column:icon;comment:图标"`
	Status    uint8     `json:"status" gorm:"column:status;comment:状态"`
	IsDelete  uint8     `json:"is_delete" gorm:"column:is_delete;comment:1已删除"`
	UpdatedAt time.Time `json:"update_at" gorm:"column:update_at;comment:更新时间"`
	CreatedAt time.Time `json:"create_at" gorm:"column:create_at;comment:创建时间"`
}

func (f *Menu) TableName() string {
	return "menu"
}

// InitData 初始化menu表
func (f *Menu) InitData(tx *gorm.DB) error {
	return tx.AutoMigrate(f)
}

// Save 保存
func (f *Menu) Save(c *gin.Context, tx *gorm.DB) error {
	if err := tx.WithContext(c).Save(f).Error; err != nil {
		return err
	}
	return nil
}
